package produto;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import produto.Produto.CodigoBarras;
import cliente.Cliente;
import cliente.Fornecedor;
import cliente.GestorClientes;
import base_de_dados.GestorBD;

public class GestorProduto {
	
	private GestorBD bd;
	
	/**
	 * @param bd
	 */
	public GestorProduto(GestorBD bd) {
		super();
		this.bd = bd;
	}


	public GestorBD getBd(){
		return bd;
	}
	
	
	public void setBd(GestorBD bd) {
		this.bd = bd;
	}
	
	public Produto adicionarProduto(double preco, String nome, String unidade, CodigoBarras codigo_barras,String descricao, String observacao)
	{
		
		Produto p = new ProdutoComposto(-1, preco, nome, unidade,codigo_barras,descricao, observacao);
		int id = bd.insert(p);
		if(id!=-1){
			p.setId(id);
			return p;
		}
		return null;
		
	}
	
	public ArrayList<Produto> listarProduto() throws SQLException{
		ResultSet rs = bd.getAll("produto");
		ArrayList<Produto> list = new ArrayList<Produto>();
		while(rs.next()){
			list.add(new ProdutoSimples(rs.getInt("id"), rs.getDouble("preco_venda"), rs.getString("nome"), rs.getString("unidade"), new CodigoBarras(rs.getString("codigo_barras")), rs.getString("descricao"), rs.getString("observacoes")));
		}
		return list;
	}
	
	public boolean removerProduto(int id){
	
		
		return false;
	}


	public Produto getProduto(int produto) throws SQLException {
		if(produto < 0) return null;
		ResultSet rs = bd.getById(produto, "produto");
		rs.next();
		return new ProdutoSimples(produto, rs.getDouble("preco_venda"), rs.getString("nome"), rs.getString("unidade"), new CodigoBarras(rs.getString("codigo_barras")), rs.getString("descricao"), rs.getString("observacoes"));

	}


}
